<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">

<head>
	<th:block th:include="include :: header('文章列表')" />
	<th:block th:include="include :: layout-latest-css" />
	<th:block th:include="include :: ztree-css" />
	<th:block th:include="include :: select2-css" />
</head>

<body class="gray-bg">
	<div class="ui-layout-west">
		<div class="box box-main">
			<div class="box-header">
				<div class="box-title">
					<i class="fa icon-grid"></i> 文章分类
				</div>
				<div class="box-tools pull-right">
					<a type="button" class="btn btn-box-tool menuItem" href="#" onclick="cat()" title="分类管理"><i
							class="fa fa-edit"></i></a>
					<button type="button" class="btn btn-box-tool" id="btnExpand" title="展开" style="display: none;">
						<i class="fa fa-chevron-up"></i>
					</button>
					<button type="button" class="btn btn-box-tool" id="btnCollapse" title="折叠">
						<i class="fa fa-chevron-down"></i>
					</button>
					<button type="button" class="btn btn-box-tool" id="btnRefresh" title="刷新分类">
						<i class="fa fa-refresh"></i>
					</button>
				</div>
			</div>
			<div class="ui-layout-content">
				<div id="tree" class="ztree"></div>
			</div>
		</div>
	</div>

	<div class="container-div ui-layout-center">
		<div class="row">
			<div class="col-sm-12 search-collapse">
				<form id="article-form">
					<input type="hidden" id="catId" name="catId"> <input type="hidden" id="parentId" name="parentId">
					<div class="select-list">
						<ul>
							<li>
								<p>文章标题：</p><input type="text" class="form-control" placeholder="文章标题"
									name="articleTitle" />

							</li>
							<li>
								<p>文章ID：</p> <input type="number" placeholder="文章ID" name="articleId" />
							</li>
							<li>
								<p>创建人ID：</p> <input type="number" placeholder="创建人ID" name="createBy" />
							</li>
							<li>标签：<select class="form-control" name="tagId">
									<option value="">所有</option>
									<option th:each="tag : ${tags}" th:text="${tag.tagName}" th:value="${tag.tagId}">
								</select>
							</li>
							<li>文章状态：<select class="form-control" name="visible"
									th:with="type=${@dictTag.getType('cms_article_visible')}">
									<option value="">所有</option>
									<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
										th:value="${dict.dictValue}">
								</select>
							</li>
							<li>文章顶置：<select class="form-control" name="articleTop"
									th:with="type=${@dictTag.getType('cms_article_top')}">
									<option value="">所有</option>
									<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
										th:value="${dict.dictValue}">
								</select>
							</li>
							<li>文章类型：<select class="form-control" name="articleType"
									th:with="type=${@dictTag.getType('cms_article_type')}">
									<option value="">所有</option>
									<option th:each="dict : ${type}" th:text="${dict.dictLabel}"
										th:value="${dict.dictValue}">
								</select>
							</li>
							<li>文章所属：<select class="form-control" name="params[supportTheme]">
									<option value="">所有</option>
									<option th:each="themeName: ${themeNames}" th:text="${themeName}"
										th:value="${themeName}">
								</select>
							</li>
							<li class="select-time"><label>创建时间： </label> <input type="text" class="time-input"
									id="startTime" placeholder="开始时间" name="params[beginTime]" /> <span>-</span> <input
									type="text" class="time-input" id="endTime" placeholder="结束时间"
									name="params[endTime]" /></li>
							<li><a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
										class="fa fa-search"></i>&nbsp;搜索</a>
								<a class="btn btn-warning btn-rounded btn-sm" onclick="reloadForm()"><i
										class="fa fa-refresh"></i>&nbsp;重置</a>
							</li>
						</ul>
					</div>
				</form>
			</div>

			<div class="btn-group-sm" id="toolbar" role="group">
				<div class="btn-group" shiro:hasPermission="cms:article:edit">
					<button data-toggle="dropdown" class="btn btn-primary multiple disabled dropdown-toggle">顶置 <span
							class="caret"></span>
					</button>
					<ul class="dropdown-menu" id="articleTopUl" th:with="type=${@dictTag.getType('cms_article_top')}">
						<li th:each="dict : ${type}" th:data-id="${dict.dictValue}"><a href="javascript:void(0)"
								th:text="${dict.dictLabel}"></a></li>
					</ul>
				</div>
				<div class="btn-group" shiro:hasPermission="cms:article:edit">
					<button data-toggle="dropdown" class="btn btn-primary multiple disabled dropdown-toggle">状态 <span
							class="caret"></span>
					</button>
					<ul class="dropdown-menu" id="articleVisibleUl"
						th:with="type=${@dictTag.getType('cms_article_visible')}">
						<li th:each="dict : ${type}" th:data-id="${dict.dictValue}"><a href="javascript:void(0)"
								th:text="${dict.dictLabel}"></a></li>
					</ul>
				</div>
				<div class="btn-group" shiro:hasPermission="cms:article:edit">
					<button data-toggle="dropdown" class="btn btn-primary multiple disabled dropdown-toggle">关联标签 <span
							class="caret"></span>
					</button>
					<ul class="dropdown-menu" id="articleTagUl">
						<li th:each="tag: ${tags}" th:data-id="${tag.tagId}"><a href="javascript:void(0)"
								th:text="${tag.tagName+'('+(tag.tagCount==null?0:tag.tagCount)+')'}"></a></li>
					</ul>
				</div>
				<div class="btn-group" shiro:hasPermission="cms:article:edit">
					<button class="btn btn-primary multiple disabled" onclick="selectCatTree()"> 关联分类
					</button>
				</div>
				<a class="btn btn-success" onclick="articleAdd()" shiro:hasPermission="cms:article:add"> <i
						class="fa fa-plus"></i>
					新增
				</a> <a class="btn btn-primary single disabled" onclick="$.operate.editTab()"
					shiro:hasPermission="cms:article:edit"> <i class="fa fa-edit"></i>
					修改
				</a>
				<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()"
					shiro:hasPermission="cms:article:remove"> <i class="fa fa-remove"></i> 删除
				</a> <a class="btn btn-info" onclick="$.table.importExcel()" shiro:hasPermission="cms:article:import">
					<i class="fa fa-upload"></i> 导入
				</a> <a class="btn btn-warning" onclick="$.table.exportExcel()"
					shiro:hasPermission="cms:article:export"> <i class="fa fa-download"></i> 导出
				</a>
			</div>

			<div class="col-sm-12 select-table table-striped">
				<table id="bootstrap-table" data-mobile-responsive="true"></table>
			</div>
		</div>
	</div>

	<th:block th:include="include :: footer" />
	<th:block th:include="include :: layout-latest-js" />
	<th:block th:include="include :: ztree-js" />
	<th:block th:include="include :: select2-js" />
	<script th:inline="javascript">
		var editFlag = [[${@permission.hasPermi('cms:article:edit') }]];
		var removeFlag = [[${@permission.hasPermi('cms:article:remove') }]];
		var viewFlag = [[${@permission.hasPermi('cms:article:view') }]];
		var articleTypes = [[${@dictTag.getType('cms_article_type') }]], articleTops = [[${@dictTag.getType('cms_article_top') }]], articleVisible = [[${@dictTag.getType('cms_article_visible') }]];
		var prefix = ctx + "cms/article";
		var tagPrefix = ctx + "cms/tag";
		var catPrefix = ctx + "cms/cat";

		$(function () {
			var panehHidden = false;
			if ($(this).width() < 769) {
				panehHidden = true;
			}
			$('body').layout({ initClosed: panehHidden, west__size: 185 });
			queryArticleList();
			queryCatTree();
		});

		function queryArticleList() {
			var options = {
				url: prefix + "/list",
				createUrl: prefix + "/add/0",
				updateUrl: prefix + "/edit/{id}",
				removeUrl: prefix + "/remove",
				exportUrl: prefix + "/export",
				importUrl: prefix + "/importData",
				importTemplateUrl: prefix + "/importTemplate",
				sortName: "createTime",
				sortOrder: "desc",
				modalName: "文章",
				columns: [{
					checkbox: true
				},
				{
					field: 'articleId',
					title: '文章id'
				},
				{
					field: 'articleTitle',
					title: '文章标题',
					formatter: function (value, row, index) {
						if (value.length > 12) {
							return '<a href="#" title="' + value + '">' + value.substring(0, 12) + '..</a>';
						}
						else {
							return '<a href="#" title="' + value + '">' + value + '</a>';
						}
					}
				},
				{
					field: 'articleTop',
					title: '顶置级别',
					formatter: function (value, row, index) {
						return $.table.selectDictLabel(articleTops, value);
					}
				},
				{

					field: 'visible',
					title: '状态',
					align: 'center',
					formatter: function (value, row, index) {
						return $.table.selectDictLabel(articleVisible, value);
					}
				},
				{
					visible: editFlag == 'hidden' ? false : true,
					title: '是否允许评论',
					align: 'center',
					formatter: function (value, row, index) {
						var pam = {};
						pam["articleId"] = row.articleId;
						if (row.allowComment == 1) {
							pam['allowComment'] = 0;
							pam = JSON.stringify(pam).replace(/\"/g, "'");
							return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(' + pam + ')"></i> ';
						} else {
							pam['allowComment'] = 1;
							pam = JSON.stringify(pam).replace(/\"/g, "'");
							return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(' + pam + ')"></i> ';
						}
					}
				},
				{
					field: 'articleType',
					title: '文章类型',
					formatter: function (value, item, index) {

						return $.table.selectDictLabel(articleTypes, value);

					}
				},
				{
					field: 'createBy',
					title: '创建人Id'
				},
				{
					field: 'createTime',
					title: '创建时间',
					sortable: true
				},
				{
					field: 'updateBy',
					title: '更新人ID',
					visible: false
				},
				{
					field: 'updateTime',
					title: '更新时间',
					sortable: true,
					visible: false
				},
				{
					field: 'keywords',
					title: '关键词',
					align: "left",
					visible: false
				},
				{
					field: 'description',
					title: '描述',
					align: "left",
					visible: false
				},
				{
					title: '操作',
					align: 'center',
					formatter: function (value, row, index) {
						var actions = [];
						actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="$.operate.editTab(\'' + row.articleId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
						actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="$.operate.remove(\'' + row.articleId + '\')"><i class="fa fa-remove"></i>删除</a> ');
						return actions.join('');
					}
				}]
			};
			$.table.init(options);
		}

		function articleAdd() {
			let u = prefix + "/add/0";
			layer.msg("编辑器选择", {
				time: 4000,
				btn: ['markdown', 'tinymce'],
				yes: function (index) {
					u = prefix + "/add/1";
					$.modal.openTab('添加文章', u);
					layer.close(index);
				},
				btn2: function (index) {
					$.modal.openTab('添加文章', u);
					layer.close(index);
				}
			})
		}
		/*分类查询树*/
		function queryCatTree() {
			var url = catPrefix + "/catTreeData";
			var options = {
				url: url,
				expandLevel: 2,
				onClick: zOnClick
			};
			$.tree.init(options);
			function zOnClick(event, treeId, treeNode) {
				$("#catId").val(treeNode.id);
				$("#parentId").val(treeNode.pId);
				$.table.search();
			}
		}

		$('#btnExpand').click(function () {
			$._tree.expandAll(true);
			$(this).hide();
			$('#btnCollapse').show();
		});

		$('#btnCollapse').click(function () {
			$._tree.expandAll(false);
			$(this).hide();
			$('#btnExpand').show();
		});

		/*刷新分类树*/
		$('#btnRefresh').click(function () {
			$('#catId').val('');
			queryCatTree();
		});

		/*刷新表单*/
		function reloadForm() {
			$('.form-control').select2().val('').trigger('change');
			$.form.reset();
			$('#catId').val('');
			queryCatTree();
		}

		function cat() {
			$.modal.openTab("分类管理", catPrefix);
		}
		/*文章顶置下拉框点击事件*/
		$('#articleTopUl>li').click(function (e) {
			//获取选中行数据
			var pam = {}, articleIds = [], chooseData = $("#bootstrap-table").bootstrapTable('getSelections');
			pam.articleTop = $(this).attr("data-id");
			if (chooseData.length > 0) {
				$.each(chooseData, function (index, ele) {
					articleIds.push(ele.articleId);
				});
				pam.articleIds = articleIds.join();
				$.modal.confirm("确认要修改选中文章的顶置属性吗？", function () {
					$.operate.post(prefix + "/editArticleTop", pam);
				})
			}
			else {
				$.modal.alert("请至少选择一项");
			}
		});

		/*文章关联标签下拉框点击事件*/
		$('#articleTagUl>li').click(function (e) {
			//获取选中行数据
			var pam = {}, articleIds = [], chooseData = $("#bootstrap-table").bootstrapTable('getSelections');
			pam.tagId = $(this).attr("data-id");
			if (chooseData.length > 0) {
				$.each(chooseData, function (index, ele) {
					articleIds.push(ele.articleId);
				});
				pam.articleIds = articleIds.join();
				$.modal.confirm("确认要批量添加标签吗？", function () {
					$.operate.post(prefix + "/addTagArticles", pam);
				})
			}
			else {
				$.modal.alert("请至少选择一项");
			}
		});

		/*文章管理-选择类目树*/
		function selectCatTree() {
			let chooseData = $("#bootstrap-table").bootstrapTable('getSelections');
			if (chooseData.length > 0) {
				var url = catPrefix + "/selectCatTree?catId=0";
				var options = {
					title: '类目选择',
					width: "380",
					url: url,
					callBack: doSubmit
				};
				$.modal.openOptions(options);
			}
			else {
				$.modal.alert("请至少选择一项");
			}

		}
		//选择类目回调
		function doSubmit(index, layero) {
			var body = $.modal.getChildFrame(index);
			//获取选中行数据
			var pam = {}, articleIds = [], chooseData = $("#bootstrap-table").bootstrapTable('getSelections');
			pam.catId = body.find('#treeId').val();
			if (chooseData.length > 0) {
				$.each(chooseData, function (index, ele) {
					articleIds.push(ele.articleId);
				});
				pam.articleIds = articleIds.join();
				$.modal.confirm("确认要批量添加分类吗？", function () {
					$.operate.post(prefix + "/addCatArticles", pam);
				})
			}
			else {
				$.modal.alert("请至少选择一项");
			}
			$.modal.close(index);
		};

		/*文章状态下拉框点击事件*/
		$('#articleVisibleUl>li').click(function (e) {
			//获取选中行数据
			var pam = {}, articleIds = [], chooseData = $("#bootstrap-table").bootstrapTable('getSelections');
			pam.visible = $(this).attr("data-id");
			if (chooseData.length > 0) {
				$.each(chooseData, function (index, ele) {
					articleIds.push(ele.articleId);
				});
				pam.articleIds = articleIds.join();
				$.modal.confirm("确认要修改选中文章状态吗？", function () {
					$.operate.post(prefix + "/editVisible", pam);
				})
			}
			else {
				$.modal.alert("请至少选择一项");
			}
		});


		/* xxx-停用 */
		function disable(pam) {
			$.modal.confirm("确认关闭评论吗？", function () {
				$.operate.post(prefix + "/edit", pam);
			})
		}

		/* xxx-启用 */
		function enable(pam) {
			$.modal.confirm("确认开启评论吗？", function () {
				$.operate.post(prefix + "/edit", pam);
			})
		}




	</script>
</body>
<form id="importForm" enctype="multipart/form-data" class="mt20 mb10" style="display: none;">
	<div class="col-xs-offset-1">
		<input type="file" id="file" name="file" />
		<div class="mt10 pt5">
			<input type="checkbox" id="updateSupport" name="updateSupport" title="如果登录账户已经存在，更新这条数据。"> 是否更新已经存在的用户数据
			&nbsp; <a onclick="$.table.importTemplate()" class="btn btn-default btn-xs"><i
					class="fa fa-file-excel-o"></i> 下载模板</a>
		</div>
		<font color="red" class="pull-left mt10">
			提示：仅允许导入“xls”或“xlsx”格式文件！ </font>
	</div>
</form>

</html>